package com.ruoyi.training.mapper;

import java.util.List;
import com.ruoyi.training.domain.PracticeAppointment;
import com.ruoyi.training.dto.PracticeAppointmentDto;
import org.apache.ibatis.annotations.Param;

/**
 * 实践预约Mapper接口
 * 
 * @author WorrilessGo
 * @date 2025-10-14
 */
public interface PracticeAppointmentMapper 
{
    /**
     * 查询实践预约
     * 
     * @param practiceAppointmentId 实践预约主键
     * @return 实践预约
     */
    public PracticeAppointment selectPracticeAppointmentByPracticeAppointmentId(String practiceAppointmentId);

    /**
     * 查询实践预约列表
     * 
     * @param practiceAppointment 实践预约
     * @return 实践预约集合
     */
    public List<PracticeAppointment> selectPracticeAppointmentList(PracticeAppointment practiceAppointment);

    /**
     * 新增实践预约
     * 
     * @param practiceAppointment 实践预约
     * @return 结果
     */
    public int insertPracticeAppointment(PracticeAppointment practiceAppointment);

    /**
     * 修改实践预约
     * 
     * @param practiceAppointment 实践预约
     * @return 结果
     */
    public int updatePracticeAppointment(PracticeAppointment practiceAppointment);

    /**
     * 删除实践预约
     * 
     * @param practiceAppointmentId 实践预约主键
     * @return 结果
     */
    public int deletePracticeAppointmentByPracticeAppointmentId(String practiceAppointmentId);

    /**
     * 批量删除实践预约
     * 
     * @param practiceAppointmentIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePracticeAppointmentByPracticeAppointmentIds(String[] practiceAppointmentIds);

    /**
     * 条件查询实践预约列表
     * @param projectIds 项目ID列表（通过项目名称查询得到）
     * @return 实践预约列表
     */
    public List<PracticeAppointment> selectByCondition(
            @Param("dto") PracticeAppointmentDto dto,
            @Param("projectIds") List<String> projectIds);

    /**
     * 删除实践预约(分配班级)
     * lqx
     */
    public int removePracticeAppointmentByPracticeAppointmentIds(String[] practiceAppointmentIds);

    //通过id查询信息
    public PracticeAppointment selectById(@Param("practiceId") String practiceId);

}
